package proxy.jdk;

import java.io.IOException;
import sun.misc.ProxyGenerator;
import java.nio.file.Files;
import java.io.File;
import java.nio.file.Path;
import java.lang.reflect.Modifier;

public class TestFile {
    public static void main(String[] args)throws IOException {

        // 复制源码中java.lang.reflect.Proxy.ProxyClassFactory.apply,debug出的数据信息
        int accessFlags = Modifier.PUBLIC | Modifier.FINAL;
        String proxyName = "proxy0";
        byte[] proxyClassFile = ProxyGenerator.generateProxyClass(
                proxyName, new Class[] {SellPhone.class}, accessFlags);

        // 采取流的方式保存至文本
        File file = new File(System.getProperty("user.dir") + "/src/proxy/jdk/proxy0.class");
        //必须保证父目录的存在
        if(!file.getParentFile().exists()) {
            file.getParentFile().mkdirs();//不存在  则创建父目录
        }
        Path path = file.toPath();
        System.out.println(path);
        Files.write(path, proxyClassFile);
    }
}